/**
 * 
 */
package com.shifan.phone.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.shifan.phone.common.Tools;
import com.shifan.phone.dao.UserModelMapper;
import com.shifan.phone.model.UserModel;
import com.shifan.phone.service.UserModelService;

/**
 * 用户表Service接口实现类
 * @author TangLei
 * @date 2018年12月4日 上午10:48:50
 * @version 1.0
 */
@Service
public class UserModelServiceImpl implements UserModelService{
	//注入用户表Dao接口
	@Resource
	UserModelMapper userModelDao;
	
	/**
	 * 根据用户ID删除用户信息
	 * @param usersId 用户ID
	 * @return 影响的行数
	 */
	@Override
	public int deleteByPrimaryKey(String usersId) {
		// 调用用户表Dao接口里面的删除的方法
		return userModelDao.deleteByPrimaryKey(usersId);
	}
	
	/**
	 * 增加用户信息（一次性增加所有字段）
	 * @param record 用户对象
	 * @return 影响的行数
	 */
	@Override
	public int insert(UserModel record) {
		//得到一个随机数
		String usersId = Tools.getRandomString();
		//给用户ID赋值
		record.setUsersId(usersId);
		//给用户类型赋值
		record.setUsersType(1);
		// 调用用户表Dao接口里面的增加的方法
		return userModelDao.insert(record);
	}

	/**
	 * 增加用户信息（增加一个或多个字段）
	 * @param record 用户对象
	 * @return 影响的行数
	 */
	@Override
	public int insertSelective(UserModel record) {
		//得到一个随机数
		String usersId = Tools.getRandomString();
		//给用户ID赋值
		record.setUsersId(usersId);
		//给用户类型赋值
		record.setUsersType(1);
		// 调用用户表Dao接口里面的增加的方法
		return userModelDao.insertSelective(record);
	}

	/**
	 * 根据用ID查询用户信息
	 * @param usersId 用户ID
	 * @return 用户对象
	 */
	@Override
	public UserModel selectByPrimaryKey(String usersId) {
		// 调用用户表Dao接口里面的根据ID查询的方法
		return userModelDao.selectByPrimaryKey(usersId);
	}

	/**
	 * 根据用户ID修改用户信息（修改一个或多个字段）
	 * @param record 用户对象
	 * @return 影响的行数
	 */
	@Override
	public int updateByPrimaryKeySelective(UserModel record) {
		// 调用用表Dao接口里面的修改的方法
		return userModelDao.updateByPrimaryKeySelective(record);
	}

	/**
	 * 根据用户ID修改用户信息（一次性修改所有字段）
	 * @param record 用户对象
	 * @return 影响的行数
	 */
	@Override
	public int updateByPrimaryKey(UserModel record) {
		// 调用用表Dao接口里面的修改的方法
		return userModelDao.updateByPrimaryKey(record);
	}

	/**
	 * 判断是否登录
	 * @param record 用户对象
	 * @return 用户对象
	 */
	@Override
	public UserModel isLogin(UserModel record) {
		// 调用用户表Dao接口里面的isLogin的方法
		return userModelDao.isLogin(record);
	}

	/**
	 * 根据用户类型查询所有用户信息
	 * @param record 用户对象
	 * @return map集合
	 */
	@Override
	public Map<String,Object> findByUsersTypeAll(UserModel record) {
		//创建一个map集合
		Map<String,Object> map = new HashMap<String,Object>();
		// 调用用户表Dao接口里面的根据用户类型查询的方法
		List<UserModel> list = userModelDao.findByUsersTypeAll(record);
		// 调用用户表Dao接口里面的根据用户类型查询总行数的方法
		int count = userModelDao.findByUsersTypeCount(record);
		//给map集合赋值
		map.put("code", 0);
		map.put("msg", "");
		map.put("count", count);
		map.put("data", list);
		//返回map集合
		return map;
	}

}
